The following is a list of the known problems in this release of ODF. This includes the Radar Bug Tracking number,
the bug title, details of the problem, and, in some cases, a workaround.
1326238
Controls always have white background color
The background color of controls is always white. When displaying controls in a colored area, you need controls
whose background color conforms to the surrounding area.
The work-around is to define a color table for the frame's window in the FacetAdded() method (see CPwdDialogFrame::FacetAdded() in the Form example); it will be used by the controls too.
Or else define a color table for individual controls.
1326376
Adding an Edit View doesn't add an idler automatically for blinking the caret
Currently they must create the idler in their frame if they want to see the edit view's insertion point blink.
ODF doesn't do it for them because we don't want to mess with any existing idlers in the frame.
1328239
Scrolling of embedded frames is too slow.
1329732
Flatten methods for FW_CView classes need more work
• They use default values for Fonts and Inks.
• FW_CRadioCluster::Flatten doesn't write out the list of radio buttons
1330067
Need public functions for registering and unregistering archiving functions
We now have a mechanism for "wild card" archiving functions, but registering the mechanism requires using a constructor of a private class, because the FW_REGISTER_ARCHIVABLE_CLASS macro requires a valid class name. We need some other public API for registering. We should also make public API for unregistering.
1330454
Drawing too slow
1331455
Edit menu not enabled in dialogs containing edit views
When there is an active edit view in a modal dialog, the Edit menu title is not enabled, even though some of its items are.
1331797
Arrow keys in FW_CEditView are not HI compliant
There are the following problems with how arrow key selection works:
• If you select a block of text, then press the left or the right arrow key, the cursor should move to the beginning (end) of the original selection. Right now, it moves one character away from the original selection.
• If you hold down the shift key and press the left or right arrow key, the selection should be extended in that direction. Right now, shift-arrow works just like arrow.
1332622
Crash when getting window position
Problem report: I wanted to get the position of a floating window before it was
deleted, so I called GetWindowPosition right before deleting it in ReleaseAll.
This caused a crash in FW_GetWindowBorderSize. It seems that the FW_CWindow object can get into
an ambiguous state before it is deleted that causes a call like this to crash.
Response: There is not much I can do here. The ODWindow has already been removed from the registry.
1334227
Apple menu is enabled when dialog is shown
Open a non-moveable dialog, then open a moveable dialog on top of it. Now close the top (moveable) dialog. The Apple menu remains enabled! Similarly, if you open a moveable dialog, open a non-moveable dialog on top of it, and close the top dialog, the Apple menu remains disabled.
1334257
Overlapping FW_CEditViews are drawn incorrectly
To reproduce: Make an FW_CEditView that is partially hidden by another view. Edit some text in the edit view. The edited text will draw on top of the overlapping view, even after you have tabbed out of the edit view.
1336104
Controls don't work well in multiple facets.
1340419
No notification for list box selection
Currently, FW_CListbox will send a notification when an item is double clicked but no notification when an item is selected.
1342164
FW_CListBox always uses white color to erase the target border.
When a list box resigns the target, it uses white color to erase the target border. This is not what you want if the background is not white.
1343240
Edit view not deactivated when OpenDoc's Document Info dialog is open
In ODFForm the active text edit view keeps blinking when you open the OpenDoc Document Info dialog (this is a "native" Mac modal moveable dialog). It is deactivated properly when you open an ODF dialog or a native Alert box.
1344793
Default buttons get the wrong appearance
To reproduce: Create a button of type FW_kDefaultPushButton in a non-dialog frame. The button will not be inset with the 4 pixel control margin and it will draw incorrectly.
If you construct a default button in a non-dialog frame or use a message other than FW_kDefaultButtonMessage, the button's appearance will be off.
1345624
FW_CSuperView::SetSize changes fExtent
This isn't always what you want. E.g., I have a drop triangle view that can be collapsed and expanded. In the expanded state, the size equals the extent. In the collapsed state, only part of the extent is revealed. The extent is supposed to remain constant as I change the view size.
1346167
ODF parts' About Box doesn't give alert beep when click outside dialog
With ODF parts, the alert beep that occurs when the user presses the mouse outside of the About dialog only occurs when the cursor mouses down over the area under which the currrent ODFDocument currently lies.The beep doesn't occur if you mousedown in an area that doesn't have an underlying ODF document (such as where only the desktop is visible).
1350999
Controls cannot be scaled
To reproduce: Embed a part with controls in ODF Draw or Container and scale to 200% or 50%; the controls don't scale with the rest of the graphics.
This is a "permanent bug" due to the limitations of the Mac ToolBox.
Since Controls are not drawn using ODF graphics they cannot scale.
1354110
FW_CPrivMacControlHelper::SetMax and SetMin should have a redraw parameter
I have a problem in the scroller where changing the max of the scrollbar should disable it. But SetMax doesn't redraw so I have to invalidate the scrollbar manually.
1354371
FW_CFacetClipper::ClipOneEmbeddedFacet may cause aliasing of clip
FW_CFacetClipper::ClipOneEmbeddedFacet first inverse transforms the workingClip, then modifies it, and finally transforms it back. Since the working clip is set to kODLoseGeometry, if a scaling is involved in the transform, this will cause a loss of resolution, and the resulting clip will end up being aliased (i.e. a smooth edge will become more jagged).
1354417
Loss of precision with native control
Native controls (like scroll bar) should cache the min, max, value etc as fixed. Converting back and forth from fixed to short results in a loss of precision.
1356909
Printing with a page inset
If I draw a box in the top-left corner of an ODF Draw document and print
it, the box is offset from the corner of the page. This offset varies from
printer to printer, and is set to the corner of the imageable area of the
page.
This works well for a drawing-type container part where big documents are
printed by tiling the content across multiple pages. Other kinds of
container parts, though, are page-oriented and need accurate registration
of their content to each page. In other words, I might need to draw a
border around the edge of a page that's inset exactly 1 inch from the edge
of the paper.
1357806
Problems printing while embedded part is active
Report: With the ODF Form part embedded in an ODF Draw document, I tried to print while the ODF Form part was active. The machine promptly crashed and required a restart.
Crash was not reproducible. However, received a PostScript error while printing with LaserWriter 7.2 driver.
Printing with LaserWriter 8.3.3 driver was ok.
1361910
Bug in AdjustActiveBorder
To reproduce: Embed ODFClock in ODFDraw embedded in ODFContainer. Zoom ODFDraw to 200%, scroll a little bit, and activate ODFClock. You'll see that the ODFClock active border is badly clipped.
1361922
ODF part should activate after undoing drop/paste of a part
To reproduce: launch ODFDraw, drop an ODFClock, activate it, Undo the drop. We end up in a strange state with
only the OpenDoc menus available. (Clicking in ODFDraw restores its menus.)
1362981
DoDroppedInSameFrame and mouse position
Depending on the kind of data, it is not always possible to use the drag
shape to compute the data offset in DoDroppedInSameFrame. For that reason,
it would be really useful to be passed the position of the mouse down that
started the drag. On the other hand, the ODStorageUnit* dropSU parameter is not
useful in the context of a drop in the same frame.
1363983
Selection focus problem when part has several windows
Something is wrong in the way the selection focus is transferred between frames residing in separate windows.
1364689
FrameLayout and ViewLayout resources both map to the resource type 'FWvl'
1366914
Command Undo/Redo should validate frames
FW_CCommand has two frame members, fFrame and fSourceFrame. If a command is created from a part being viewed
in a separate window, fFrame will be the frame in the window and fSourceFrame will be the original embedded frame.
If the user closes the window, fFrame will not point to a valid frame. If the user then does Undo or Redo, the command
may dispatch from the invalid frame pointer, causing a crash or exception to be thrown.
1367521
FW_RMenuBar and FW_RViewLayout are not archivable
MenuBar and ViewLayout resources contain archivable elements (views and menu items) but are not themselves FW_RArchivable.
1372876
Links and link sources are not copied or moved via clipboard or drag&drop
In ODF Table or ODF Draw, select and copy/paste, cut/paste, or drag between part instances in the same document. Notice that links are not recreated at the destination.
1374261
FW_CDragCommand::BeginDrag doesn't check for link destination content
1375862
Frame doesn't redraw when fResizeForceRedraw is set
To reproduce: Create a frame that is its own content view. Call SetResizeForceRedraw(ev, true) in the constructor. When you resize the window, not all of the frame gets redrawn.
1377614
FW_CSuperView should be archivable
It's occasionally useful to put an FW_CSuperView in a resource, without subclassing it. This can't currently be done because FW_CSuperView is not registered as archivable.
1377670
FW_CListBox should erase before calling LUpdate
If a ListBox view is larger than the bounds of its cells, the background color of the superview shows through.
1381844
Registering apresentation twice causes an Assertion
RegisterPresentation should determine if the proposed presentation is registered, if so it can return the existing FW_CPresentation object, otherwise it can register it.
1381845
About dialog doesn't activate with hidden dialog behind it
I created a non-floating modeless dialog window, but didn't show it (yet). When choosing About…, the about dialog window is not activated until clicked in.
1381849
Menu bar cannot be archived
First of all, a menu bar can't be instantiated without making it the "current" menu bar. Secondly, if you try to archive a menu bar by iterating over the pulldown menu list, you fail in FW_CTextItem::Flatten, because that method calls menuBar->GetMenuKey which calls the Menu Manager.
1382138
Using drafts in ODF parts with floating windows results in crash
Steps to reproduce:
1. Create a simple ODFDraw document (contents are unimportant).
2. Save a draft.
3. Close and reopen the document.
4. Go to Drafts and open the draft.
5. Bring the current draft window (the newer one) to the front.
6. Go to Drafts and Save Draft.
7. Notice that the floating window is no longer visible (it was before this).
8. Looking at the menu reveals "Hide Tools" as the menu item name.
9. Selecting it causes a crash (although I've also gotten crashes is some other locations before this).
1382683
ODF doesn't grab other UI foci when FocusAcquired is called for a UI focus
When getting a FocusAcquired call for one of the UI foci, such as the selection focus, it is customary to request the rest of your UI focus set.
This is so that a container part can activate an embedded part by calling TransferFocus and transferring the selection focus to it. In this case with ODF, ODF will not request the other foci, so the menus will remain owned by the container and key events (if appropriate) will continue to be handled by the container.
There are two possible workarounds, depending on your direction of approaching the problem. A part might be able to override FocusStateChanged to compensate for this (although this might not be as straightforward as it may seem).
From the container's side, it can always transfer all three foci from the standard UI focus set (selection, menu, key) to the embedded part -- but all parts may not want all of these, and all containers doing this kind of thing would have to do this.
1382775
Embedded parts show the About box of the container part
The About menu item just says "About", not "About OpenDoc™...". When you choose "About", the about box of the containing part is shown.
The problem only happens with Button and Nothing; parts with their own About boxes don't have the problem.
1382979
FW_CLinkManager::CreateLink should not swallow exceptions
1383191
ODF Insert dialog shows only OpenDoc documents
The filter for the Insert dialog (FW_MacInsertFilterProc) filters files such that only visible, non-application files with a creator of OpenDoc will show up in the list. This is incorrect behavior.
The Insert dialog is supposed to show all content that could be inserted, which means all files. Chosing a non-OD file should cause editor-binding to occur. For viewers, this is often the only way to get content into the document. Basically, it should let you insert anything that you could have dropped into the document from the Finder.
1384066
Can't register kind for export-on-demand
To register a kind so that it gets written when ODPart::ExternalizeKinds is called, the storage kind FW_kPartStorage must be used. (FW_CPart::ExternalizeKinds tests for this).
But this means that the kind is always written when the part is externalized. After binding to an ODFBitmap part using PICT data, I need to be able to ask the part to ExternalizeKinds (…PICT…), but can't expect ODFBitmap to always write out PICTs in addition to its native kind.
1385382
FW_CEditView::GetFont returns non-localized font name
If you call FW_CEditView::GetFont(ev)->GetFontName(ev, fontName), the fontName string has a locale of
(system script, system language) regardless of the font's actual script.
1385545
Crashes related to in-limbo frames
OpenDoc 1.1 forces an embedded part which is being removed from its container to relinquish the focus if it is active at that time. This occurs in the SetInLimbo call made by the container, which is normally made after the frame has been detached from its containing frame, and all of its facets have been removed. Some of the actions that parts may take upon losing the selection focus cannot be completed when the frame is already detached. A few changes to ODF and the sample parts to avoid crashes were made. One case that was not identified in time for this release is when FW_CFrame::FocusStateChanged calls FW_CSelection::CloseSelection. This is most likely to cause problems if there is a non-empty selection in the part being removed. In particular, the non-empty selection case causes a crash in ODFDraw.
1385777
Menu key commands shouldn't be invoked when option key is down
Key combinations like command+option+S are interpreted by ODF as menu keyboard equivalents.
Workaround: intercept these key combinations in DoCharKey and return FW_kHandled.
1386016
ODF containers don't handle the general multiple frame case
ODF containers don't handle multiple frames properly, for the general case. (They do handle the special case of View in Window OK.) In response to DisplayFrameAdded, containers do not create new embedded frames for any embedded parts.